home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / comm / fido / tts21.lha / TicTacSpot.spot < prev    next >
Text File  |  1995-06-16  |  14KB  |  384 lines

  1. /* TicTacSPOT v2.0 By Creepy Productions - David Lascelles. See doc for
  2.    original copyright notices.
  3.    $VER: TicTacSPOT v2.0 (13.06.95)
  4. */
  5.  
  6. TEMPDIR = 'T:'
  7. options results
  8. Address 'SPOT'
  9.  
  10. address command "rxlib rexxreqtools.library 0 -30"
  11. NL = '0a'x
  12. address command "rxlib rexxsupport.library 0 -30" 
  13. address command "rxlib rexxarplib.library 0 -30 0"
  14.  
  15.  
  16.  
  17. 'IsMessages'
  18. If RC>0 Then Do
  19.    'RequestNotify PROMPT "Use only from message window"'
  20.    Exit
  21.    End
  22.  
  23. 'SaveAscii TO "'TEMPDIR'TicTacSPOT.temp" OVERWRITE NOHEADER NOORIGIN NOKLUDGES'
  24.  
  25. If ~Open('Inp',TEMPDIR'TicTacSPOT.temp','r') Then Do
  26.    'RequestNotify PROMPT "Cannot open temporary file:'TEMPDIR'TicTacSPOT.temp"'
  27.    Exit
  28.    End
  29.  
  30. Do y=1 To 4
  31.    Do x=1 To 3
  32.       POS.x.y=' '
  33.    End
  34. End
  35.  
  36. Do Until Pos('* TicTacSpot',LINE)>0
  37.    If Eof('Inp') Then Do
  38. retqw=rtezrequest("Message contains no TicTacSpot data!","_Start New|Quit","You needed a FX430303 Scanner with a banana to do that ;).","rt_pubscrname=SPOT rt_reqpos=reqpos_centerscr rt_font=mfast.font/20")
  39.       If retqw=1 Then Do
  40.         Call Close('Inp')
  41.         Signal PlayMove
  42.       End
  43.       Exit
  44.    End
  45.    If Exists('Ram:Plop') then Exit
  46.    LINE=ReadLn('Inp')
  47. End
  48.  
  49. Call Readln('Inp')
  50. LINE.1=Readln('Inp')
  51. Call Readln('Inp')
  52. Call Readln('Inp')
  53. LINE.2=Readln('Inp')
  54. Call Readln('Inp')
  55. Call Readln('Inp')
  56. LINE.3=Readln('Inp')
  57. deded=readln('Inp')
  58. edwdkwdokwk=readln('Inp')
  59. piece=readch('Inp')
  60. if piece="o" then pw="x"
  61. if piece="x" then pw="o"
  62. piece=pw
  63. Call Close('Inp')
  64.  
  65. Do y=1 To 3
  66.   Parse var LINE.y POS1' | 'POS2' | 'POS3
  67.   POS1=Right(POS1,2)
  68.   POS2=Left(POS2,2)
  69.   POS3=Left(POS3,2)
  70.   If POS1='/\' Then POS.1.y='o'
  71.   If POS1='\/' Then POS.1.y='x'
  72.   If POS2='/\' Then POS.2.y='o'
  73.   If POS2='\/' Then POS.2.y='x'
  74.   If POS3='/\' Then POS.3.y='o'
  75.   If POS3='\/' Then POS.3.y='x'
  76. End
  77. if upper(piece)="X" then signal ed
  78. if upper(piece)="O" then signal ed
  79. PlayMove:
  80. RCDEA=rtezrequest("Will you be Os or Xs?","_O|_X","Hard descision - the round one or the non-round one ?","rt_pubscrname=SPOT rt_reqpos=reqpos_centerscr rt_font=chex.font/26",RCDEDA)
  81. If RCDEA=0 Then PIECE='x'
  82. If RCDEA=1 Then PIECE='o'
  83. call bob
  84. ed:
  85. retoax=rtezrequest("In case you forgot, you are '"upper(piece)"'s","cool!","Bad memory ?","rt_pubscrname=FOOZLE rt_reqpos=reqpos_centerscr rt_font=emerald.font/17",RCDEDAA)
  86. bob:
  87. done=0
  88. Do Until DONE=1
  89. board=""upper(pos.1.1)" + "upper(pos.2.1)" + "upper(pos.3.1)" "
  90. board2="++++++++++"
  91. board3=""upper(pos.1.2)" + "upper(pos.2.2)" + "upper(pos.3.2)" "
  92. board4="++++++++++"
  93. board5=""upper(pos.1.3)" + "upper(pos.2.3)" + "upper(pos.3.3)" "
  94.  
  95. RCDE=rtezrequest("Row 1  =  "board"    You are now on the top"||NL||,
  96.                     "          "board2"    row, select where to"||NL||,
  97.                     "Row 2  =  "board3"    place  piece or click"||NL||,
  98.                     "          "board4"    on Middle Row to go  "||NL||,
  99.                     "Row 3  =  "board5"    to the middle row. :)"||NL||NL||,
  100.                     "Click on Big for the large tactics screen! ;)"||NL||,
  101.                     "","_Left|_Mid|_Right|M_iddle Row|_Big|_Exit","The high chain of command informs you that this is the top row!","rt_pubscrname=SPOT rt_reqpos=reqpos_centerscr rt_font=ruby.font/15",DW)
  102.  
  103. if RCDE=1 Then If PoS.1.1='x'|Pos.1.1='o' then do;call exista;signal bob;end
  104. If RCDE=1 Then do;If PoS.1.1=' ' Then DoNE=1;PoS.1.1=PIECE;signal ced;End
  105. if RCDE=2 Then If PoS.2.1='x'|Pos.2.1='o' then do;call exista;signal bob;end
  106. IF RCDE=2 Then If PoS.2.1=' ' Then Do;DoNE=1;PoS.2.1=PIECE;signal ced;End
  107. if RCDE=3 Then If PoS.3.1='x'|Pos.3.1='o' then do;call exista;signal bob;end
  108. If RCDE=3 Then If PoS.3.1=' ' Then Do;DoNE=1;pos.3.1=piece;signal ced;End
  109. if RCDE=5 then call big
  110. if RCDE=0 then exit 0
  111.  
  112. RCDE=rtezrequest("Row 1 = "board"    You are now in the middle"||NL||,
  113.                     "        "board2"    row, select where to"||NL||,
  114.                     "Row 2 = "board3"    place piece or click"||NL||,
  115.                     "        "board4"    on Bottom Row to go :( "||NL||,
  116.                     "Row 3 = "board5"    to the Bottom row :) "||NL||NL||,
  117.                     "BIG will display a rather large board indeed!"||NL||,
  118.                     "","_Left|_Mid|_Right|_Bottom Row|Bi_g|_Exit","Oi you! What you doing in the middle row, trying to cheat eh ? ","rt_pubscrname=SPOT rt_reqpos=reqpos_centerscr rt_font=ruby.font/15",DWSQ)
  119. if RCDE=0 then exit 0
  120. if RCDE=5 then call big
  121. if RCDE=1 Then If PoS.1.2='x'|Pos.1.2='o' Then do;call exista;signal bob;end
  122. If RCDE=1 Then If PoS.1.2=' ' Then Do;DoNE=1;PoS.1.2=PIECE;signal ced;End
  123. if RCDE=2 Then If PoS.2.2='x'|Pos.2.2='o' then do;call exista;signal bob;end
  124. If RCDE=2 Then If PoS.2.2=' ' Then Do;DoNE=1;PoS.2.2=PIECE;signal ced;End
  125. if RCDE=3 Then If PoS.3.2='x'|Pos.3.1='o' then do;call exista;signal bob;end
  126. If RCDE=3 Then If PoS.3.2=' ' Then Do;DoNE=1;PoS.3.2=PIECE;signal ced;End
  127.  
  128. retw=rtezrequest("Row 1 = "board"    You are now on the Bottom"||NL||,
  129.                     "        "board2"    row, select where to"||NL||,
  130.                     "Row 2 = "board3"    place piece or click"||NL||,
  131.                     "        "board4"    on exit to go to back "||NL||,
  132.                     "Row 3 = "board5"    to SPOT."||NL||NL||,
  133.                     "This time BIG will display the same as before!"||NL||,
  134.                     "","_Left|_Mid|_Right|_Big|_Top Row!!|_Exit","lowest of the low, scum of the earth - well the bottom row!","rt_pubscrname=SPOT rt_reqpos=reqpos_centerscr rt_font=ruby.font/15",DW)
  135. If retw=0 Then exit 0
  136. if retw=4 then call big
  137. if retw=5 then signal bob
  138. if retw=1 Then If PoS.1.3='x'|Pos.1.3='o' then do;call exista;signal bob;end
  139. If retw=1 Then If PoS.1.3=' ' Then Do;DoNE=1;PoS.1.3=PIECE;signal ced;End
  140. if retw=2 Then If PoS.2.3='x'|Pos.2.3='o' then do;call exista;signal bob;end
  141. If retw=2 Then If PoS.2.3=' ' Then Do;DoNE=1;PoS.2.3=PIECE;signal ced;End
  142. if retw=3 Then If PoS.3.3='x'|Pos.3.3='o' then do;call exista;signal bob;end
  143. If retw=3 Then If PoS.3.3=' ' Then Do;DoNE=1;PoS.3.3=PIECE;signal ced;End
  144. End
  145. End
  146. End
  147.  
  148. ced:
  149. call Open('Oup',TEMPDIR'TicTacSPOT.temp','w')
  150.  
  151. LINE1=' >  '
  152. LINE2=' >  '
  153. LINE3=' >  '
  154. LINE4=' >  '
  155. LINE5=' >  '
  156. LINE6=' >  '
  157. If POS.1.1='x' Then Do
  158.   LINE1=LINE1||'\/ |'
  159.   LINE2=LINE2||'/\ |'
  160. End
  161. If POS.1.1='o' Then Do
  162.   LINE1=LINE1||'/\ |'
  163.   LINE2=LINE2||'\/ |'
  164. End
  165. If POS.1.1=' ' Then Do
  166.   LINE1=LINE1||'   |'
  167.   LINE2=LINE2||'   |'
  168. End
  169. If POS.2.1='x' Then Do
  170.   LINE1=LINE1||' \/ |'
  171.   LINE2=LINE2||' /\ |'
  172. End
  173. If POS.2.1='o' Then Do
  174.   LINE1=LINE1||' /\ |'
  175.   LINE2=LINE2||' \/ |'
  176. End
  177. If POS.2.1=' ' Then Do
  178.   LINE1=LINE1||'    |'
  179.   LINE2=LINE2||'    |'
  180. End
  181. If POS.3.1='x' Then Do
  182.   LINE1=LINE1||' \/'
  183.   LINE2=LINE2||' /\'
  184. End
  185. If POS.3.1='o' Then Do
  186.   LINE1=LINE1||' /\'
  187.   LINE2=LINE2||' \/'
  188. End
  189.  
  190. If POS.1.2='x' Then Do
  191.   LINE3=LINE3||'\/ |'
  192.   LINE4=LINE4||'/\ |'
  193. End
  194. If POS.1.2='o' Then Do
  195.   LINE3=LINE3||'/\ |'
  196.   LINE4=LINE4||'\/ |'
  197. End
  198. If POS.1.2=' ' Then Do
  199.   LINE3=LINE3||'   |'
  200.   LINE4=LINE4||'   |'
  201. End
  202. If POS.2.2='x' Then Do
  203.   LINE3=LINE3||' \/ |'
  204.   LINE4=LINE4||' /\ |'
  205. End
  206. If POS.2.2='o' Then Do
  207.   LINE3=LINE3||' /\ |'
  208.   LINE4=LINE4||' \/ |'
  209. End
  210. If POS.2.2=' ' Then Do
  211.   LINE3=LINE3||'    |'
  212.   LINE4=LINE4||'    |'
  213. End
  214. If POS.3.2='x' Then Do
  215.   LINE3=LINE3||' \/'
  216.   LINE4=LINE4||' /\'
  217. End
  218. If POS.3.2='o' Then Do
  219.   LINE3=LINE3||' /\'
  220.   LINE4=LINE4||' \/'
  221. End
  222. If POS.1.3='x' Then Do
  223.   LINE5=LINE5||'\/ |'
  224.   LINE6=LINE6||'/\ |'
  225. End
  226. If POS.1.3='o' Then Do
  227.   LINE5=LINE5||'/\ |'
  228.   LINE6=LINE6||'\/ |'
  229. End
  230. If POS.1.3=' ' Then Do
  231.   LINE5=LINE5||'   |'
  232.   LINE6=LINE6||'   |'
  233. End
  234. If POS.2.3='x' Then Do
  235.   LINE5=LINE5||' \/ |'
  236.   LINE6=LINE6||' /\ |'
  237. End
  238. If POS.2.3='o' Then Do
  239.   LINE5=LINE5||' /\ |'
  240.   LINE6=LINE6||' \/ |'
  241. End
  242. If POS.2.3=' ' Then Do
  243.   LINE5=LINE5||'    |'
  244.   LINE6=LINE6||'    |'
  245. End
  246. If POS.3.3='x' Then Do
  247.   LINE5=LINE5||' \/'
  248.   LINE6=LINE6||' /\'
  249. End
  250. If POS.3.3='o' Then Do
  251.   LINE5=LINE5||' /\'
  252.   LINE6=LINE6||' \/'
  253. End
  254.  
  255.   call Writeln('Oup',' ')
  256.   Call Writeln('Oup',' > * TicTacSpot v2.0 Updated By Creepy')
  257.   Call Writeln('Oup',' >')
  258.   Call Writeln('Oup',LINE1)
  259.   Call Writeln('Oup',LINE2)
  260.   Call Writeln('Oup',' > ----+----+----')
  261.   Call Writeln('Oup',LINE3)
  262.   Call Writeln('Oup',LINE4)
  263.   Call Writeln('Oup',' > ----+----+----')
  264.   Call Writeln('Oup',LINE5)
  265.   Call Writeln('Oup',LINE6)
  266.   Call Writeln('Oup',' ')  
  267.   Call Writeln('Oup',piece)
  268. Call Close('Oup')
  269.  
  270.  
  271.  
  272.  
  273. 'GetFrom'
  274. FROM=Result
  275. RCDE=rtezrequest("Do you want to edit the message ?","_Yes|_No","Edit Message or eat it ?","rt_pubscrname=SPOT rt_reqpos=reqpos_centerscr rt_font=sapphire.font/19")
  276. If RCDE=1 Then 'Write TO "'FROM'" SUBJECT "TicTacSPOT" FILE "'TEMPDIR'TicTacSPOT.temp" NOGUI'
  277. If RCDE=0 Then 'Write TO "'FROM'" SUBJECT "TicTacSPOT" FILE "'TEMPDIR'TicTacSPOT.temp" NOEDIT NOGUI'
  278. exit 0
  279.  
  280. exista:
  281. retaa=rtezrequest("Sorry - Piece already there","_Return","And where is the brain today!!","rt_pubscrname=SPOT rt_reqpos=reqpos_centerscr rt_font=coop.font/24",re)
  282. return
  283.  
  284. INFo:
  285.  
  286. RCDE=rtezrequest("Welcome to Creepys TicTacToe whether you be a Foozle owner    "||NL||,
  287.        "or a SPOT one, I salute you ;) I hope you like this script  "||NL||,
  288.        "as it took three of us a while to write (the other two being "||NL||,
  289.        "Paul and John, who were respectivly responsible for the    "||NL||,
  290.        "original code and for the message reading part in the SPOT  "||NL||,                                                                                    
  291.        "code.) I also hope you like this new GUI interface and only   "||NL||,                                                                                    
  292.        "appologise for the amount of fonts you had to download to    "||NL||,
  293.        "use it! If you want a chat or just grab some files, then    "||NL||,
  294.        "why not logon to Creepys Amiga BBS - +44(0)191 3832181 24Hrs  "||NL||,
  295.        "its well worth a vist! Also if you use this proggy I would "||NL||,
  296.        "be grateful for a hello note to one of the addresses below!    "||NL||,
  297.        "okay dokay - Bye For Now!                    "||NL||,
  298.        "                                                               "||NL||,
  299.        "          ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿            "||NL||,
  300.        "          ³ Regards, ÚÄ ÚÄ     ³ ³  2:256/503.0   ³            "||NL||,
  301.        "          ³  ÚÄÄ Ú¿  ÃÄ ÃÄ ÚÄ¿ ÀÂÙ  69:101/11.0   ³            "||NL||,
  302.        "          ³  ÀÄÄ ÃÁ¿ ÀÄ ÀÄ ÃÄÙ  ³   240:360/306   ³            "||NL||,
  303.        "          ³                ³    ³   39:131/11.0   ³            "||NL||,
  304.        "          ³ David.Lascelles@Creepys.nemesis.co.uk ³            "||NL||,
  305.        "          ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ            ","And back please!|Can I see it again!","Creepys Amazing Info!","rt_pubscrname=SPOT rt_reqpos=reqpos_centerscr rt_font=cleanibm.font/8",re)
  306.                                  
  307. if RCDE=1 then signal begin
  308. if RCDE=0 then signal info       
  309.  
  310. exit 0
  311.  
  312. big:
  313. do g=1 to 3
  314. do f=1 to 3
  315. say g.f.1
  316. if pos.g.f="o" then do
  317. de.g.f.1=" oooo "
  318. de.g.f.2="o    o"
  319. de.g.f.3="o    o"
  320. de.g.f.4=" oooo "
  321. end
  322. if pos.g.f="x" then do
  323. de.g.f.1="\   / "
  324. de.g.f.2=" \_/  "
  325. de.g.f.3=" / \  "
  326. de.g.f.4="/   \ "
  327. end
  328. if pos.g.f=' ' then do
  329. de.g.f.1="      "
  330. de.g.f.2="      "
  331. de.g.f.3="      "
  332. de.g.f.4="      "
  333. end
  334. end
  335. end
  336. board.1="                        #####          #####         "                       
  337. board.2="               "de.1.1.1"   #####  "de.2.1.1"  #####  "de.3.1.1"           "
  338. board.3="               "de.1.1.2"   #####  "de.2.1.2"  #####  "de.3.1.2"           "
  339. board.4="               "de.1.1.3"   #####  "de.2.1.3"  #####  "de.3.1.3"           "
  340. board.5="               "de.1.1.4"   #####  "de.2.1.4"  #####  "de.3.1.4"           "
  341. board.6="                        #####          #####             "
  342. board.7="            ###########################################   "
  343. board.8="            ###########################################   "
  344. board.9="                        #####          #####         "                       
  345. board.10="               "de.1.2.1"   #####  "de.2.2.1"  #####  "de.1.3.1"           "
  346. board.11="               "de.1.2.2"   #####  "de.2.2.2"  #####  "de.1.3.2"           "
  347. board.12="               "de.1.2.3"   #####  "de.2.2.3"  #####  "de.1.3.3"           "
  348. board.13="               "de.1.2.4"   #####  "de.2.2.4"  #####  "de.1.3.4"           "
  349. board.14="                        #####          #####             "
  350. board.15="            ###########################################   "
  351. board.16="            ###########################################   "
  352. board.17="                        #####          #####         "                       
  353. board.18="               "de.1.3.1"   #####  "de.2.3.1"  #####  "de.3.3.1"           "
  354. board.19="               "de.1.3.2"   #####  "de.2.3.2"  #####  "de.3.3.2"           "
  355. board.20="               "de.1.3.3"   #####  "de.2.3.3"  #####  "de.3.3.3"           "
  356. board.21="               "de.1.3.4"   #####  "de.2.3.4"  #####  "de.3.3.4"           "
  357. board.22="                        #####          #####             "
  358.  
  359. fr=rtezrequest(""board.1||NL||,
  360.                ""board.2||NL||,
  361.                ""board.3||NL||,
  362.                ""board.4||NL||,
  363.                ""board.5||NL||,
  364.                ""board.6||NL||,
  365.                ""board.7||NL||,
  366.                ""board.8||NL||,
  367.                ""board.9||NL||,
  368.                ""board.10||NL||,
  369.                ""board.11||NL||,
  370.                ""board.12||NL||,
  371.                ""board.13||NL||,
  372.                ""board.14||NL||,
  373.                ""board.15||NL||,
  374.                ""board.16||NL||,
  375.                ""board.17||NL||,
  376.                ""board.18||NL||,
  377.                ""board.19||NL||,
  378.                ""board.20||NL||,
  379.                ""board.21||NL||,
  380.                ""board.22||NL||,
  381.                ""||NL||,
  382.                ""||NL||,
  383.                "","_Sooo|_What|_Tactics|_Are|_You|_Going|_To|_Employ ?","Nice screen dork ;)","rt_pubscrname=SPOT rt_reqpos=reqpos_centerscr rt_font=cleanibm.font/8")
  384. call bob